home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <proto/exec.h>
-
- #include "struct.h"
-
- ULONG StackPtr;
- ULONG MaxStackPtr;
- ptrcoups *Stack;
- ptrcoups BigArea;
-
- void AllocArea(ULONG nb)
- {
- ULONG i;
-
- if(BigArea=(ptrcoups)AllocVec(nb*sizeof(coups),MEMF_PUBLIC))
- if(Stack=(ptrcoups*)AllocVec(nb*sizeof(ptrcoups),MEMF_PUBLIC))
- {
- for(i=0;i<nb;i++)
- Stack[i]=BigArea+i;
- MaxStackPtr=StackPtr=0;
- return;
- }
- else
- FreeVec(Stack);
- puts("Pb Mémoire. salut.");
- FreeVec(BigArea);
- exit(0);
- }
-
- void FreeArea(void)
- {
- FreeVec(BigArea);
- FreeVec(Stack);
- }
-
- ptrcoups Malloc(void)
- {
- if(StackPtr>MaxStackPtr)
- MaxStackPtr=StackPtr;
- Stack[StackPtr]->sp=0;
-
- return(Stack[StackPtr++]);
- }
-
- void Free(void)
- {
- StackPtr--;
- }
-
- void FreeAll(void)
- {
- MaxStackPtr=StackPtr=0;
- }
-